$(document).ready(function(){
    $(".ie").load("js/ie.html"); // Load the IE warning into a div with a class of ie 
    
    $( "#dialog:ui-dialog" ).dialog( "destroy" );
                                
    $("#regles").click(function(){
            
        $( "#dialog-modal" ).dialog({
            width: 500,
            modal: true
        });
		
    });
       
  
});

//initialisation des variables
var joueur="";
var ordi="";
var res="";
var scoreJ=scoreO=scoreE=0;
var tab1 = new Array();	
var timeout;
var encours=false;

var numTour = 0;

//le bouton jouer peut avoir deux valeurs : "nouvelle partie" ou "stop"
$("#jouer").click(function(){
    if( !encours) {
        encours=true;
        partie();
    }
    else{
        encours=false;
        stop();
    }
});

//fin d'une partie'
function stop(){

    $("#jouer").text("Jouer");
    //on cache le compte à rebourd
    $("#rebour").hide();
    //on efface le choix de l'ordinateur
    $("#ordi").html("");
    
    //on supprime les relances automatique de tours et de partie
    clearTimeout(timeout);
    clearTimeout(timeout2);
    
    tps = -1;
    
    //On affiche les résultats de la partie
    var resultat_partie;
    if (scoreJ>scoreO){
        resultat_partie = '<img src="images/gagne_partie.png" alt="gagné" title="gagne" class="resultat_partie"/>';
    }else if (scoreJ<scoreO){
        resultat_partie = '<img src="images/perdu_partie.png" alt="perdu" title="perdu" class="resultat_partie"/>';
    }else {
        resultat_partie = '<img src="images/egalite_partie.png" alt="égalité" title="egalite" class="resultat_partie"/>';
    }
    $("#resultat_partie").html(resultat_partie);
}


//Permet de lancer une nouvelle partie
function partie(){
    //Initialisation de la partie
    $("#jouer").text("Stop");
    $("#resultat_partie").html("");
    //initialisation du tableau des scores
    initTableau();
    $("#rebour").show();
    $("figure").click(function(){
        joueur=this.id;
        var fig="#"+joueur;
        $("figure").css("background", "#F4F4F4");
        $(fig).css("background", "orange");
    });
    
    //on lance un tour
    tour();
}

function tour(){

    $(".shadow").removeClass("shadow");
    $("#resultat").html("");
    //on lance le compte à rebourd de 3 secondes
    rebour(3);
}

function rebour(tps){
    if (tps>0) { //Si le temps est inferieur à 0
        $("#rebour").text('Temps restant : '+tps); //On affiche le resultat dans le div concerné
        tps -= 1; // et on enléve une seconde
        timeout = setTimeout("rebour("+tps+")", 1000); //On rappelle la fonction toute les secondes
    }else{
        //En fonction du choix du joueur, on met à jour le tableau des résultats
        var res=quiAGagne(joueur);
        majTableau(res);
        
        var tableau=enteteTableau();
        for (var i=tab1.length-1;i>=0;i--) {
            tableau+=tab1[i];
        }
        tableau+=totalTableau();
        $("#ordi").html(figureOrdi(ordi));
        $("#tableau").html(tableau);
        montrerGagnant(res);

        //on relance un nouveau tour dans 1 seconde
        timeout2 = setTimeout("tour()",1000);      
    }
}  

//permet d'afficher une petite icone pour connaitre le gagnant
function montrerGagnant(res){

    $("#resultat").html(img);
    var img="";
    switch(res){
        case("ordi"):
            $("#ordi figure").addClass("shadow");
            img='<img src="images/perdu.png" alt="perdu" title="perdu" class="result"/>';
            $("#resultat").html(img);
            break;
        case("joueur"):
            $("#"+joueur).addClass("shadow");
            img='<img src="images/gagne.png" alt="gagne" title="gagne" class="result"/>';
            $("#resultat").html(img);
            break;
        case("egalite"):
            img='<img src="images/egalite.png" alt="egalite" title="egalite" class="result"/>';
            $("#resultat").html(img);
            break;
        default:
            break;
    }
}

//Applique les règles du chifoumi
function quiAGagne(joueur){
    ordi=$.trim(choixServeur());
    res="";
    if (joueur==ordi){
        scoreE+=1;
        res="egalite";
    }else{
        switch (joueur){
            case "pierre":
                if (ordi=="feuille"){
                    res="ordi";
                    scoreO+=1;
                }else if(ordi=="ciseaux"){
                    res="joueur";
                    scoreJ+=1;
                }
                break;
            case "feuille":
                if (ordi=="pierre"){
                    res="joueur";
                    scoreJ+=1;
                }else if(ordi=="ciseaux"){
                    res="ordi";
                    scoreO+=1;
                }
                break;
            case "ciseaux":
                if (ordi=="pierre"){
                    res="ordi";
                    scoreO+=1;
                }else if(ordi=="feuille"){
                    res="joueur";
                    scoreJ+=1;
                }
                break;
            default:
                res="ordi";
                scoreO+=1;
                break;
        }
    }
    return res;
}

//Permet d'obtenir le choix de l'ordinateur via une requete ajax
function choixServeur(){
    return $.ajax({
        url: "serveur.php",
        async: false
    }).responseText;
}

//Met à jour le tableau des résultats
function majTableau(resultat){
    numTour++;
    var tab=" <tr><td>"+numTour+"</td>";
    switch (resultat){
        case "joueur":
            tab+="<td>1</td><td>0</td><td>0</td>";
            break;
        case "ordi":
            tab+="<td>0</td><td>1</td><td>0</td>";
            break;
        case "egalite":
            tab+="<td>0</td><td>0</td><td>1</td>";
            break;
    }
    tab+="</tr>";
    tab1.push(tab);
}
	
	
//initialise le tableau des résultats
function initTableau(){
    $("#tableau").html(enteteTableau());
    $("#widget_titre").html("Résultats");
    
    tab1= new Array();
    scoreO=scoreE=scoreJ=0;
    numTour = 0;
}

//permet d'obtenir l'entete du tableau
function enteteTableau(){
    return "<thead><td>Tour</td><td>Joueur</td><td>Ordi</td><td>Egalité</td></thead><tbody>"; 
}

//permet d'obtenir la ligne des résultats du tableau
function totalTableau(){
    return "</tbody><tfoot><td>Total</td><td>"+scoreJ+"</td><td>"+scoreO+"</td><td>"+scoreE+"</td></tfoot>";
}

//permet d'afficher le choix de l'ordinateur
function figureOrdi(figure){
    return '<figure "><img src="images/'+figure+'.png" id="'+figure+'i" alt="'+figure+'Ordi" title="Ordi a joué '+figure+'"/></figure>';
}

